System and method for notifying users of similar searches

ABSTRACT

Interactions between users on mobile devices can be facilitated by making the users aware when other users have performed similar searches. In one embodiment, when two users executing a mapping application on a mobile device each perform a similar search in a similar geographic area, the server that receives and performs the search request can make each user aware of the other&#39;s presence, for example by displaying an icon indicating the other user on the mapping application. The search results may be refined to indicate search results in a geographic area common to the geographic search areas of each user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. provisional patent applicationSer. No. 61/481,829 entitled TOUCH AND VOICE CONTROL filed May 3, 2011,the disclosure of which is incorporated in its entirety herein byreference.

FIELD OF THE INVENTION

This disclosure relates to systems and methods for facilitatinginteraction between a plurality of users of a plurality of mobilecommunications devices.

BACKGROUND OF THE INVENTION

Mobile devices have evolved into small computers that are able toperform tasks that just a few years ago few thought were possible. Thecurrent high-end devices are more powerful and integrated with morefunctionality allowing them to access the Internet in a seamlessfashion. Wireless access to the Internet allows users to stay connectedanywhere and anytime.

Current mobile devices utilize touch screens allowing users to interactwith various applications. These touch screens utilize gestures that aremostly common among all devices allowing users to easily interact withthe devices and applications.

Location services are also common among mobile devices. Theseapplications allow users to perform certain actions including trackwhere they are, search for items of interest near their currentlocation, or obtain driving directions to destinations with respect totheir current locations. Inherent in these map applications is theability to use gestures. For example, if a user desires to zoom out ofthe displayed map, using two fingers or a finger and a thumb, the usercan pinch the fingers together and the map zooms out. Consequently, ifthe user spreads the fingers apart, the map zooms in.

The added processing power of mobile devices allows speech to textoperations. This technology allows users to replace the need forentering text into the mobile device by speaking into the microphone onthe device. The speech is then analyzed and the converted speech isdisplayed to the user in text form. This greatly aids users in utilizingthe mobile device in situations that are substandard (i.e. driving).Instead of typing on the small touch keyboard on the mobile device, theuser is able to speak into the device and have the speech converted totext. While this functionality is relatively new for mobile devices, itis dependable and predictable.

SUMMARY OF THE INVENTION

The embodiments to be described relate to controlling a mobile device,and more particularly allowing both voice and touch gesturessimultaneously or near-simultaneously to control an application residingon a mobile device.

Users of mobile devices are currently able to provide input by touch.Many current mobile devices contain touch screens wherein the users areable to utilize either a touch device (e.g. stylus), or a finger toprovide input to the device. Also available in mobile devices is speechrecognition functionality where the user's speech is converted intotext, also known as speech-to-text.

In the present disclosure, there will be described embodiments thatcombine the touch gesture functionality with speech recognition whichfurther includes natural language processing. In doing so, newfunctionality is presented and is described in detail below in examplemobile applications allowing a more fluid interaction with the user ofthe mobile device and the mobile application. The examples below willshow that the applications utilizing the functionality in the currentdisclosure are more intuitive and functionalities that took multipleactions can be achieved in one step.

There will also be described embodiments in which users who have enteredsimilar searches may be notified or made aware of each other's processin order to facilitate social interactions.

In one aspect of the disclosure, there is provided a method forfacilitating interaction between a plurality of users of a plurality ofmobile communications devices, the method comprising receiving into aserver a first search request from a first user through a first mobilecommunications device, receiving into the server a second search requestfrom a second user through a second mobile communications device,determining in the server a similarity between the first search requestand the second search request, and when the first search request and thesecond search request are determined to be similar, providing anotification of the similarity of the search requests from the server toat least one of the first mobile communications device or the secondmobile communications device.

In one aspect of the disclosure, there is provided a system forfacilitating interaction between a plurality of users of a plurality ofmobile communications devices, the system comprising a server configuredto receive a first search request from a first user through a firstmobile communications device, receive a second search request from asecond user through a second mobile communications device, determine asimilarity between the first search request and the second searchrequest, and when the first search request and the second search requestare determined to be similar, provide a notification of the similarityof the search requests from the server to at least one of the firstmobile communications device or the second mobile communications device.

In one aspect of the disclosure, there is provided a non-transitorycomputer readable medium comprising executable instructions forreceiving into a server a first search request from a first user througha first mobile communications device, receiving into the server a secondsearch request from a second user through a second mobile communicationsdevice, determining in the server a similarity between the first searchrequest and the second search request, and when the first search requestand the second search request are determined to be similar, providing anotification of the similarity of the search requests from the server toat least one of the first mobile communications device or the secondmobile communications device.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made, by way of example only, to specificembodiments and to the accompanying drawings in which:

FIG. 1 shows a network architecture;

FIG. 2 shows a flow of the speech conversion process;

FIG. 3 shows a process for interpreting a combination of a touch gestureand speech to determine an action to be performed;

FIG. 4 shows a process in which a user touch gesture is initiated first;and

FIG. 5 shows a message flow for notifying multiple users of similarsearches.

DETAILED DESCRIPTION OF THE INVENTION

Touch Gestures

Touch screens have been on the market since the mid '70s, but havegained popularity through the inclusion of touch screens in smartphones, Personal Digital Assistants (PDAs), tablet computers, portablegaming consoles, and many types of mobile information appliances. Touchscreens have also gained popularity in locations where a keyboard andmouse do not allow a suitably intuitive, rapid, or accurate interactionby the user with the display's content, such as a kiosk.

A version of gestures entitled “Multi-Touch Gestures” utilizes multiplesimultaneous touches to provide additional functionality. For example, auser can perform an action called “pinching” where two fingers arebrought together to zoom out on an image. Another multi-touch gesturecalled “reverse pinching” refers to the spreading of two fingers apart,and is used to enlarge a picture or zoom in on an image. Apple's recentoperating system supports many multi-touch gestures where 2, 3 and even4 fingers can be used to perform various actions on components on thedisplay.

Speech Recognition

Speech recognition allows a device to receive speech from a user, andperforms actions based on the received speech. Speech-to-text is theprocess where the device allows the user to speak into the microphoneand the speech is converted to text and the text is used in theapplication just as if the user had typed it on the keyboard. NaturalLanguage Processing (NLP) is concerned with the language of the user,and attempts to understand the linguistics of what the user isattempting to say. NLP attempts to understand language that humans usenaturally. Using NLP, the application of the current invention processesthe speech and the application uses this as input, along with the touchgesture to perform a new action.

FIG. 1 below depicts a network diagram of how the application of thecurrent embodiments may reside in relation to the cellular network andthe Internet.

FIG. 1 displays a network architecture 100. For the purposes of thisdisclosure, it is assumed that an application that embodies the methodsof the present disclosure resides on the client machine 102 though theapplication could similarly be hosted on other devices, such as servers,computers within a computing cloud and accessed from the client device102 via suitable networks, for example using internet and/or wirelessprotocols. While the client device 102 is depicted as a cellular phone,it should be noted that other types of devices may be used. For example,a PDA, a tablet computer, a laptop, an MP3 player, a gaming device (suchas a hand held system or home based system) and the like (including aP.C. or other wired device) that can also transmit and receiveinformation could be used.

The user interfaces through the client device 102. In addition to theGUI located at the client's location 102, the application willcommunicate with functionality located on the server 106 (for examplethe speech-to-text functionality, and the voice stress analysisfunctionality) through either the Internet 104, or the cellular network108.

Speech-to-Text Functionality on a Mobile Device

The application can reside on a user's mobile device. This functionalityof the invention can reside in an “App”, or program executing on themobile device 102, or be part of the mobile device's operating system,allowing it to interface with programs loaded on and/or executing on thedevice.

On a mobile device, the touch gesture and voice-to-text functionalitiesexist on the device, or can be accessed by the device, assuming that themobile device is a phone with advanced capabilities (smartphone). Asmartphone is a mobile device containing PC-like functionality. Usually,smartphones offer more advanced computing ability and connectivity thana contemporary cellular phone.

The combining of the touch gesture and voice-to-text functionalities canbe interworked with the mobile device's software development kit (SDK).Speech recognition is built into many common mobile device SDKs. Forexample, in the Android release of SDK 1.5, a library included in thatrelease called android.speech allows speech recognition functionality.

In the Android 1.5, speech recognition is done through theRecognizerIntent. The intent starts an activity that will prompt theuser for speech and send it through the speech recognizer. For example,the code below starts an activity with an intent and the applicationwaits for the result:

Intent intent=new

Intent(“android.speech.action.RECOGNIZE_SPEECH”);

startActivityForResult(intent, 0);

The startActivityForResult method launches an Activity returning theresult. While speech recognition is performed, it displays an overlayover your app, and when done returns the results back for your activityto handle. The action: RECOGNIZE_SPEECH starts an activity to recognizethe speech and send the result back to the activity. The voicerecognition application that handles the intent processes the voiceinput, then passes the recognized string back to the application bycalling the onActivityResult( ) callback.

Android supports two language models for speech analysis: free_form fordictation, and web_search for shorter, search-like phrases. Theinvention of the current application utilizes the free_form model.

Finally, the example below depicts code to integrate speech-to-text tothe application:

// Check to see if a recognition activity is present

PackageManager pkgmgr=getPackageManager( );

List activities=pkgmgr.queryIntentActivities(

-   -   new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);    -   if (activities.size( ) !=0)    -   {speakButton.setOnClickListener(this);    -   } else        -   {speakButton.setEnabled(false);            -   speakButton.setText(“Recognizer is not present”);        -   }            }

The sample pseudocode above first verifies that the target mobile deviceis able to interwork with the speech input, then usesstartActivityForResult( ) to broadcast an intent requesting voicerecognition, including the extra parameter specifying one of twolanguage models. The voice recognition application that handles theintent processes the voice input, then passes the recognized string backto the application by calling the onActivityResult( ) callback.

In one embodiment, instead of utilizing Speech-to-Text where the speechis converted to text that is then used as input to the application, theapplication utilizes Natural Language Processing (NLP). Through the useof NLP, the speech is received from the user and processed. Theresultant outcome from the processing is used as input to theapplication, when combined with the touch gesture, a new method orprocedure is executed.

FIG. 2 depicts a flow 200 of the speech conversion process. Theapplication initiates the speech conversion process 202. The intentrequesting voice recognition is registered with the system 204. Thisallows the system to begin listening for the voice from the user,capturing the incoming speech and converting it to text. A listener isset on an existing component to receive the response from the voicerecognition 206. This listener will receive the text from the convertedspeech 208. The result is received by the application 210 containing thetext and the application is able to process the result.

Touch Gesture on a Mobile Device

The touch gesture functionality is inherent on smartphones in the markettoday. This functionality allows the user to use their finger (or othertouch mechanism) to interface with the mobile device.

A common smartphone operating system in the market today is Android. Inthe Android environment, the primary point of access for touch data isthe android.view.MotionEvent class. This class is passed to the views ofthe current application via the onTouchEvent and onInterceptTouchEventmethods. MotionEvent contains data about “pointers,” or active touchpoints on the device's screen. Through a MotionEvent, X/Y coordinatescan be obtained as well as size and pressure for each pointer.MotionEvent.getAction( ) returns a value describing what kind of motionevent occurred.

In the Android application environment, the onTouch event is fired whenthe touch screen is interacted with by the user's finger or touchingdevice (i.e. stylus, etc). The onTouch event can be handled similar tothe following code:

public boolean onTouchEvent(MotionEvent event) {

-   -   int action=event.getAction( );    -   switch (action) {        -   case (MotionEvent.ACTION_DOWN) :            -   // Touch screen pressed            -   break;        -   case (MotionEvent.ACTION_UP) :            -   // Touch screen touch ended            -   break;        -   case (MotionEvent.ACTION_MOVE) :            -   // Contact has moved across screen                -   break;        -   case (MotionEvent.ACTION_CANCEL) :            -   // Touch event cancelled            -   break;    -   }    -   return super.onTouchEvent(event);

The pseudocode above handles different actions of the returned onTouchevent thrown when the user interacts with the touch screen. Theapplication can perform actions based upon the exact touch event thrownby the system.

Interaction of Touch Gestures and Speech Recognition

Interacting touch gestures with speech recognition is possible by anapplication executing on a mobile device. As described above, classesexist that allow applications to call methods for both functionalities.

In FIG. 3, there is depicted a flowchart 300 showing the interactions ofutilizing both touch gesture and speech conversion to allow anapplication to perform new functionality based on both inputs. The userinitiates either a touch gesture or speech into the device's microphone302. The order in which the speech and touch gesture are performed isnot essential to the present disclosure in its broadest form and thedescription of one particular order herein or in the claims that followis not intended to limit the disclosure to that particular order. If theinitial action was a touch gesture (determination step 312), the speechconversion is initiated by allowing the user to speak into the device'smicrophone 304. The touch gesture completes 306. The application waitsuntil the speech conversion is complete to continue 308. Once the speechconversion is complete the result of the conversion is made available tothe application 310. A new action is performed utilizing the result ofboth the touch gesture and the speech conversion 322.

If the first gesture was speech 312, the touch gesture is initiatedallowing the user to perform a touch gesture on the device 314. Theconversion of the speech is complete and the result is made available tothe application 316. The application waits for the touch gesture tocomplete before continuing 318. Once the touch gesture is complete, thetouch gesture the result is made available to the application 320. A newaction is performed utilizing the result of both the touch gesture andthe speech conversion 322.

FIG. 4 depicts the interactions between the touch gesture functionalityand the speech conversion functionality. The example shows the userfirst making a touch gesture, followed by having the speech converted totext. The reverse process is also contemplated. The user will initiatethe process by beginning a gesture on the mobile device screen 402. Uponindication that the user has begun a gesture action, the applicationwill initiate the speech conversion process 404 where the user's speechis captured and converted to text. The touch gesture functionalitycompletes 406 after the speech conversion has been initiated. Normally,the application acts upon the completion of the gesture, but with theapplication of the current disclosure, the process waits until thespeech from the user is captured and converted to text 408 before takingany actions in the application. Once the speech has successfully beenconverted to text 410, this text string is returned to the applicationand processing of the application resumes. The normal activity of thegesture alone is combined with the string returned from the speechconversion and the new action is executed in the application 412.

The combination of the touch gesture and converted speech can beutilized in other applications. This disclosure provides examples wherethe functionality may be utilized. A programmer versed in mobileapplication development will be able to see the benefit of providingother applications where the additional functionality is beneficial.

Map Example

For example, assume that a user is interacting with and/or viewing a mapapplication on a mobile device. The user can use a finger to navigate todifferent areas of the map. A pinch on the map zooms out, and when theuser expands the map, the application responds with zooming into moredetail. These gestures are commonly available with map applications on amobile device.

Voice commands are also available in map applications. For example, mapapplications on a mobile device contain a search component. Whenclicked, the device displays a keyboard on the display where the user isable to type in a string or search parameter. Upon clicking a confirmbutton, for example, the map is searched for that string in the areadisplayed on the map. The user is also able to press a voice button, forexample, that allows the user to speak into the mobile device. Thespeech is converted to text, and the text is displayed in the searchcomponent just as if the user had typed the string in.

Utilizing the currently described methods, the touch gesture and thespeech input may be combined. When viewing a map on the mobile device,the user can initiate the functionality of the current application bypressing a button, for example. The user then uses voice to input thesearch string while using a finger to swipe on the map. If the userdesires to search for a business that is north of the location displayedon the map, while speaking the name of the location, the user wouldswipe down on the map. The application would then understand that theuser desires to search for the location north of where the map iscurrently displayed.

In another embodiment of the current disclosure, the applicationautomatically accepts speech input from the user after a touch gestureis made in the application.

SMS Texting Example

In another example, texting can be integrated with voice commands toallow functionality that is not currently available. Let us assume thata mobile device is currently displaying an SMS chat session. The usercan initiate the functionality of the current disclosure by pressing abutton on the screen, for example. The user then says a formattingcommand such as the command “highlight”. The application then waits forthe user to slide a finger over some text in the chat session on thescreen. The background of the text then changes color on the displayindicating the text is chosen. Additional functionality can beinterworked into the application allowing various actions to occur withthe chosen text. For example, the application can display a list on thescreen including “Email”, “Forward Text”. When the user chooses “ForwardText”, the application responds with an SMS text compose screen with thetext that was highlighted automatically inserted into the body of themessage. The user can then choose a recipient and send the chosen textto the recipient.

Document Editing Example

In yet another example of the present disclosure, when editing adocument, the user is able to utilize voice to assist when searching fora string in the current document. Assume that the user is editing adocument, normally a user is able to perform an action that will allow astring to be entered, and a button is pressed to initiate the searching.In addition to searching for the string, the user speaks “backwards” tohave the application search up for the string. If the user speaks“forwards”, the application searches forward for the string. Othercommands can be utilized that interwork with the application. Forexample, “top” can mean to go to the top of the edited document, or“bottom” can mean to go to the end of the edited document.

The functionality of the application initiates speech conversion uponacknowledgement of the user beginning a touch gesture. For example, whenthe user initiates a touch gesture in the map application, the mapapplication calls the RECOGNIZE_SPEECH method (or intent) enabling themobile device to also convert any speech. The result of the convertedspeech is utilized as input to the application, allowing the additionalfunctionality combining the received touch gesture with the convertedtext.

In another embodiment of the current disclosure, specific touch gesturesare used to indicate actions heretofore not available. When in themapping application on a mobile device, the user draws a circle on themap using the touch gesture. This circle indicates the diameter of thesearch. Meaning that the user only wishes to find the businesses withinthe diameter of the circle drawn. A circle is described herein only asan example. The diameter of the searching can also be any othermechanism that a developer of the current invention deems acceptable.For example, a square could be used, or the user could touch two pointsin on the map to indicate the searching area.

For example, if the user desired to locate any Chinese restaurantswithin 1 mile of the current location, the user would view the currentlocation on the map where the map is displaying a 4 mile diameter view.The user would draw a circle on the map with a finger about 1 mile outfrom the current location. The diameter of the circle would indicate a 2mile diameter, or one mile in any direction from the current location.The user would then say “Chinese restaurant” in to the device'smicrophone. The application would then highlight the Chinese restaurantswithin 1 mile in any direction from the user's current location.Alternately, the user can say “Chinese restaurant” first followed bydrawing the circle on the map. The same result would be shown.

In another aspect of the current disclosure, social aspects areinterworked into mobile applications, particularly search applications.In a mapping and search application, when a server, such as server 106of FIG. 1, detects two or more similar searches, the respective userswho provided the search requests may be sent a notification of awarenessthat informs each other of their similar searches. The mappingapplication on a user's device 102 displays the other users, termedremote users herein, by showing the remote users indicated by an icon onthe mapping application. The mapping application may work with thesimultaneous gesture/speech application described above or may workindependently thereof.

For example, the user of a mapping application draws a searchingdiameter on the mapping application and says “Chinese restaurant”. Themapping application returns with the Chinese restaurants that are withinthe searched area. The searched businesses are highlighted on themapping application (for example, a small store icon is shown on theuser's mapping application). In addition, two other users (User2 andUser3) have made similar search requests for a Chinese restaurant in thesimilar geographic area in a similar time window. They are indicated bya small person icon displayed on the user's mapping applicationindicating their respective current locations.

The user has the option to click on User2's person icon, and User3'sperson icon to obtain the contact information of User2 and User3. Thecontact information displayed to the user is the contact informationthat User2 and User3 has previously configured as opt-in information.When the user clicks on User2 and User3, the restaurant icon on themapping application is updated to display the best Chinese restaurantthat is in best proximity to the user of the current invention, User2,and User3. In this way, all three of the users are able to meet at thebest location that is in the best proximity of all three of the users(the user of the current invention, User2, and User3).

In addition, according to the configuration of the application, otherdeterminations of the best business displayed to all three users (theuser of the current invention, User2, and User3) can be displayed. Forexample, the Chinese restaurant that is the nearest in proximity to allthree users, the safest restaurant that is nearest to all three, or therestaurant that is within a predetermined food rating that is inproximity to all three.

The server and/or application may pre-define what constitutes a similarsearch request. For example, a similar request may be generally similar,such that any UserB searching for a restaurant within an overlappinggeographic area is indicated. A similar request may be specificallysimilar, such that only a UserB that is searching for a Chineserestaurant will be indicated. Parameters for similarity may includesearch terms, geographic area, time windows, etc. Other parameters willbe apparent to a person skilled in the art.

The server 106 gathers the requests from the remote users (UserB) andsends the acknowledgement to the client 102, so that the applicationexecuting on the client 102 is made aware of the similar requests.

FIG. 5 depicts a message flow between the systems of the network whenthe user of the current invention (UserA) and a remote user (UserB)searches for similar businesses, for example a Chinese restaurant,within the same geographic location.

In FIG. 5, the user of the application is depicted as UserA ClientDevice 502. A remote user is depicted as UserB Client Device 504. TheServer 506 is the data server connected to the Data Network 508. Thecommunication between the Users Devices 502, 504 and the Server 506 andthe Data Network 508 could be a mobile network 104, internet network orthe cellular network 108.

UserA initiates a search request by utilizing the search/mappingapplication on their device. For example, UserA requests to find thenearby Chinese restaurants. A search request is sent from the mobiledevice to the Data Network 510. The Data Network notifies the Serverthat a search request is made by the application on the UserA device.This allows the Server to be made aware of requests and to allow theserver to be able to notify users of similar requests. UserB requests toalso find the nearby Chinese restaurants, and a search request is sentform the mobile device to the Data Network 514. The Data Networknotifies the Server that a request is made by the application of thecurrent invention 516.

The Data Network sends a search response to UserA's device indicatingthe locations of the requested business 518, allowing the application onUserA's device to update indicating the searched establishment(s). TheData Network sends a search response to UserB's device indicating thelocations of the requested business 520, allowing the application ofUserB's device to update indicating the searched establishment(s).

The Server is aware of both UserA and UserB requests, and programmingwithin the server allows the server to detect and realize that both ofUserA and UserB are within the same geographic location (e.g. within apredefined distance) and have entered similar search requests. Bysimilar, it is meant that the search requests are within suitableparameters, in this case, both search requests relate to restaurants andmore particularly to Chinese restaurants, within an overlappinggeographic area. The Server sends a message to UserA's device 522providing notification of UserB. UserA's application is then updatedwith an icon on the map indicating UserB's location. This could be asmall person icon displayed on UserA's map, or any other similar icon.The Server sends a message to UserB's device 524 providing notificationof UserA. UserB's application is also updated with UserA's location.

UserA, after seeing the icon on the map of UserB, performs an actionthat allows the application to send a connect message to the Server 526.This action can be a touch of UserB's icon on the map. The Server thensends a connection request message to UserB's device indicating thatUserA desires to connect 528. UserB is notified by the application ofthe connection request. This could be a changing color of UserA's icon,or any other method of notification, for example, a message notificationcan be delivered to UserB.

UserB then, desiring to establish the connection, performs an actionthat tells the application to establish the connection. This can be atouch of UserA's icon, or an acknowledgement of the notificationmessage, assuming that a notification message was sent to UserB. Thiscauses a connection response message to be sent to the Server 530.

The Server, now aware that UserA and UserB desire to establish aconnection sends a new search request to the Data Network 532. This newsearch request has the geographic location of both UserA and UserB. TheData Network now attempts to find the Chinese restaurants that are inthe vicinity of both UserA and UserB. The Data Network sends a searchresponse to UserA's device 534 and to UserB's device 536 to indicate theChinese restaurant(s) that is closest to UserA's location and UserB'slocation.

At this point, UserA and UserB can communicate and exchange informationthrough a voice call or text messages, assuming that they have chosen topublish their mobile device numbers in their configuration of theapplication. Other methods of communication can also be made availableaccording to the configuration.

In another embodiment of the current disclosure, the user can say termsafter saying the name of the establishment searched for. For example, ifthe user is searching for Chinese restaurants, but only interested inrestaurants in safe neighborhoods, the user would say “Chineserestaurant safe neighborhood”. The application would return thoserestaurants considered to be safe. The safety of the area can beascertained by calculating police reports in the area, or previoususer's comments received by the map application, or any other methodfound to rate neighborhoods.

In another embodiment of the current disclosure, the user would only beshown restaurants that remain open given the distance that the user hastravel to get to the location. For example, if the current time is 9:50pm, the restaurants that close at 10:00 pm would not be displayed unlessthe current location of the user is such that a 10:00 pm closing wouldstill allow time for the user to get to the location and make an orderbefore the closing.

In another embodiment of the current disclosure, the user can say aminimum score of the restaurant after saying the name. For example, ifthe user desired to see the locations of all Chinese restaurants withinthe diameter of the drawn circle that scored a 4 out of 5 stars, theuser would say “Chinese restaurants four”. The rating of the restaurantsis determined by the mapping application by obtaining the previouscustomer ratings received, or by a local or national rating site.

In another embodiment of the current disclosure, the user is able toview comments about nearby restaurants by drawing a circle to determinethe searching diameter, the saying the name of the business searchingfor, followed by “comments”. The user will then be shown nearbyrestaurants and when clicking on the restaurant icon on the map, theapplication displays the previous user comments received by the mappingapplication, or comments received by the business and made available bythe mapping application.

The components of the system 100 may be embodied in hardware, software,firmware or a combination of hardware, software and/or firmware. Inparticular, the application(s) may be stored as a set of executableinstructions in a non-transitory computer readable medium that isoperatively associated with the client device 102.

Although embodiments of the present invention have been illustrated inthe accompanied drawings and described in the foregoing description, itwill be understood that the invention is not limited to the embodimentsdisclosed, but is capable of numerous rearrangements, modifications, andsubstitutions without departing from the spirit of the invention as setforth and defined by the following claims. For example, the capabilitiesof the invention can be performed fully and/or partially by one or moreof the blocks, modules, processors or memories. Also, these capabilitiesmay be performed in the current manner or in a distributed manner andon, or via, any device able to provide and/or receive information.Further, although depicted in a particular manner, various modules orblocks may be repositioned without departing from the scope of thecurrent invention. Still further, although depicted in a particularmanner, a greater or lesser number of modules and connections can beutilized with the present invention in order to accomplish the presentinvention, to provide additional known features to the presentinvention, and/or to make the present invention more efficient. Also,the information sent between various modules can be sent between themodules via at least one of a data network, the Internet, an InternetProtocol network, a wireless source, and a wired source and viaplurality of protocols.

What is claimed is:
 1. A method for facilitating interaction between aplurality of users of a plurality of mobile communications devices, themethod comprising: receiving into a server a first search request from afirst user through a first mobile communications device and a firstsimilarity definition; receiving into the server a second search requestfrom a second user through a second mobile communications device and asecond similarity definition; determining in the server a similaritybetween the first search request and the second search request; and whenthe first search request and the second search request are determined tobe similar based on said first similarity definition and said secondsimilarity definition, providing a notification of the similarity of thesearch requests from the server to at least one of the first mobilecommunications device or the second mobile communications device.
 2. Themethod of claim 1 wherein determining a similarity of the first searchrequest and the second search request comprises determining whether ageographic location of the first search request and the second searchrequest are similar.
 3. The method of claim 1 wherein determining asimilarity of the first search request and the second search requestcomprises determining whether a current location of the first mobilecommunications device is similar to a current location of the secondmobile communications device.
 4. The method of claim 1 whereindetermining a similarity of the first search request and the secondsearch request comprises determining whether a time window of the firstsearch request and the second search request are similar.
 5. The methodof claim 1 comprising displaying the notification of the similarity onat least the first mobile communications device.
 6. The method of claim5 wherein displaying the notification comprises displaying an iconrepresenting the second user.
 7. The method of claim 6 wherein the iconrepresenting the second user is selectable on the first mobilecommunications device and wherein selection of the second user icondisplays further contact details of the second user on the first mobilecommunications device.
 8. The method of claim 5 wherein the first searchrequest comprises a first geographic search area, wherein the secondsearch request comprises a second geographic search area, and whereinthe method comprises: receiving a selection of the notification on thefirst mobile communications device; and in response to the selection ofthe notification, displaying a refined search result on the first mobilecommunications device that indicates search results in a geographic areacommon to the first geographic search area and the second geographicsearch area.
 9. The method of claim 1 comprising recording the firstsearch request in the first mobile communications device, the recordingcomprising: receiving speech and a touch gesture into the first mobilecommunications device; and determining the first search request from thespeech and the touch gesture.
 10. A system for facilitating interactionbetween a plurality of users of a plurality of mobile communicationsdevices, the system comprising a server configured to: receive a firstsearch request from a first user through a first mobile communicationsdevice and a first similarity definition; receive a second searchrequest from a second user through a second mobile communications deviceand a second similarity definition; determine a similarity between thefirst search request and the second search request; and when the firstsearch request and the second search request are determined to besimilar based on said first similarity definition and said secondsimilarity definition, provide a notification of the similarity of thesearch requests from the server to at least one of the first mobilecommunications device or the second mobile communications device. 11.The system of claim 10 wherein the server is configured to determinewhether a geographic location of the first search request and the secondsearch request are similar.
 12. The system of claim 10 wherein theserver is configured to determine whether a current location of thefirst mobile communications device is similar to a current location ofthe second mobile communications device.
 13. The system of claim 10wherein the server is configured to determine whether a time window ofthe first search request and the second search request are similar. 14.The system of claim 10 wherein the first mobile communications device isconfigured to display the notification of the similarity.
 15. The systemof claim 14 wherein the first mobile communications device is configuredto display an icon representing the second user.
 16. The system of claim15 wherein the icon representing the second user is selectable on thefirst mobile communications device and wherein selection of the seconduser icon displays further contact details of the second user on thefirst mobile communications device.
 17. The system of claim 14 whereinthe first search request comprises a first geographic search area,wherein the second search request comprises a second geographic searcharea, and wherein the first mobile communications device is configuredto: receive a selection of the notification on the first mobilecommunications device; and in response to the selection of thenotification, display a refined search request on the first mobilecommunications device that indicates search results in a geographic areacommon to the first geographic search area and the second geographicsearch area.
 18. The system of claim 10 wherein the first mobilecommunications device is configured to: receive speech and a touchgesture into the first mobile communications device; and determine thefirst search request from the speech and the touch gesture.
 19. Anon-transitory computer readable medium comprising executableinstructions for: receiving into a server a first search request from afirst user through a first mobile communications device and a firstsimilarity definition; receiving into the server a second search requestfrom a second user through a second mobile communications device and asecond similarity definition; determining in the server a similaritybetween the first search request and the second search request; and whenthe first search request and the second search request are determined tobe similar based on said first similarity definition and said secondsimilarity definition, providing a notification of the similarity of thesearch requests from the server to at least one of the first mobilecommunications device or the second mobile communications device. 20.The non-transitory computer readable medium of claim 19 comprisinginstructions for determining whether a geographic location and a timewindow of the first search request and the second search request aresimilar.